package com.SmartStores.mundo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Properties;

import android.app.Activity;
import android.content.res.Resources;

public class SmartStore {

	
	private ArrayList<ListadoCompras> antiguos;
	private ListadoCompras listaActual;
	private Catalogo catalogo;
	
	
	public SmartStore() {
		super();
		
		antiguos = new ArrayList<ListadoCompras>();
		listaActual = new ListadoCompras();
		catalogo = Catalogo.darInstancia();
		cargarListasAntiguas();
		
	}
	
	
	public ArrayList<ListadoCompras> getAntiguos() {
		return antiguos;
	}
	public void setAntiguos(ArrayList<ListadoCompras> antiguos) {
		this.antiguos = antiguos;
	}
	public ListadoCompras getListaActual() {
		return listaActual;
	}
	public void setListaActual(ListadoCompras listaActual) {
		this.listaActual = listaActual;
	}


	private void cargarListasAntiguas()
	{
		Properties datos = new Properties();
		try
		{
//			InputStream in = openRawSource(...);
			InputStream in = new FileInputStream(new File(""));
			datos.load(in);
			in.close();
		} catch (FileNotFoundException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		int numListas = Integer.parseInt(datos.getProperty("numListas"));
		for (int i = 0; i < numListas; i++)
		{
			int numProds = Integer.parseInt(datos.getProperty("lista"+i));
			ListadoCompras lista= new ListadoCompras();
			for (int j = 0; j < numProds; j++)
			{
				String prod = datos.getProperty("lista"+i+".prod"+j);
				String[] splitProd= prod.split(";");
				Producto producto= catalogo.getProductoId(Integer.parseInt(splitProd[0]));
				Item item= new Item(producto, Integer.parseInt(splitProd[0]));
				lista.agregarProducto(item);
			}
			antiguos.add(lista);
		}
		
	}

	private int darMaximaCantidad()
	{
		int mayor = -1;
		for(int i = 0; i < antiguos.size();i++)
		{
			ListadoCompras listado = antiguos.get(i);
			ArrayList<Item> items = listado.getProductosEnLista();
			int cantidadMayor = items.get(0).getCantidad();
			for (int j = 0; j < items.size(); j++)
			{
				Item item = items.get(i);
				int cantidad =item.getCantidad();
				if(cantidad > cantidadMayor)
				{
					cantidadMayor = cantidad;
					mayor = cantidadMayor;
				}
				
			}
		}
		
		return mayor;
	}
	
	public ArrayList <Producto> darProductosPromocion()
	{
		ArrayList<Producto> respuesta = new ArrayList<Producto>();
		int cantidadMaxima = darMaximaCantidad();
		for (int i = 0; i < antiguos.size(); i++)
		{
			ListadoCompras listado = antiguos.get(i);
			ArrayList<Item> items = listado.getProductosEnLista();
			for (int j = 0; j < items.size(); j++)
			{
				Item item = items.get(j);
				int cantidad = item.getCantidad();
				if(cantidadMaxima == cantidad)
				{
					respuesta.add(item.getProducto());
				}
			}
		}
		
		return respuesta;
	}
	
	
}
